﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidades;
using Datos;
using System.Text.RegularExpressions;

namespace Logica
{
    public class PacienteL
    {
      
       


        //busca paciente por rut
         public static Paciente GetByRut(string rut)
        {
            return PacienteAD.GetByRut(rut);
        }

         //ultimo pago
         public static Paciente UltimoPago(string rut)
         {
            return PacienteAD.UltimoPago(rut);
         }

         //total deuda
         public static int TotalDeuda(string rut)
         {
             int totaldeuda = 0;
             int total = 0;
             int pagado = 0;

             total = PacienteAD.SumaTratamientosEjec(rut);
             pagado = PacienteAD.SumaPagosEjec(rut);

             totaldeuda = total - pagado;


             return totaldeuda;
         }

         //convierte fecha de nacimiento en edad
         public static int edad(string fechanacimiento) 
         {
             DateTime dt = Convert.ToDateTime(fechanacimiento);
             int edd = DateTime.Now.Year - dt.Year;
             DateTime nacimientoAhora = dt.AddYears(edd);
             if (DateTime.Now.CompareTo(nacimientoAhora) < 0)
             { 
              edd--; 
             }
             return edd;
         }

        //Calula digito verificador
        public static string dv(int rut)
        {
                  int Digito;
                  int Contador;
                  int Multiplo;
                  int Acumulador;
                  string RutDigito;

                  Contador = 2;
                  Acumulador = 0;

                  while (rut != 0)
                  {
                  Multiplo = (rut % 10) * Contador;
                  Acumulador = Acumulador + Multiplo;
                  rut = rut/10;
                  Contador = Contador + 1;
                  if (Contador == 8)
                        {
                         Contador = 2;
                        }
                  }
      

                  Digito = 11 - (Acumulador % 11);
                  RutDigito = Digito.ToString().Trim();
                  if (Digito == 10 )
                  {
                        RutDigito = "K";
                  }
                  if (Digito == 11)
                  {
                        RutDigito = "0";
                  }
                  return (RutDigito);
      }

        //insertar paciente
       public static bool NuevoPaciente(Paciente paciente)
        {
            int i =0;
            i = PacienteAD.NuevoPaciente(paciente);
            if (i == 1)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        //modificar paciente
       public static bool ModificarPaciente(Paciente paciente)
       {
           int i = 0;
          i = PacienteAD.ModificarPaciente(paciente);
          if (i == 1)
          {
              return true;
          }
          else
          {
              return false;
          }
       }

        //valida email
       public static bool validarEmail(string email) 
       { 
           String expresion; 
           expresion = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"; 
           if (Regex.IsMatch(email, expresion)) 
           {
               if (Regex.Replace(email, expresion, String.Empty).Length == 0) 
               { return true; } 
               else { return false; } 
           }
           else 
           { return false; } }

   }
    
}

